More and more mobile electronic devices are designed with a color display device for displaying color images. These color images can for example be generated by a camera or a video processor. The supplied color image data may have to undergo an image processing to improve the appearance of the image on the display device. Nowadays, multi-media data have to be displayed in a mobile phone, in a multi-media portable player, etc. Typically, the display technology used in these mobile devices has some limitations, in particular with respect to the picture quality and the color reproduction. The colors of the supplied image data are typically encoded according to already existing standards. These standards have been selected to facilitate a design of displays based on the available materials. Accordingly, as long as a camera or a display match the chosen standard, a reasonable reproduction of the colors or image data may be expected.
On the other hand, LCD displays in particular for mobile applications may not be able to meet the requirements of these standards. One of these standards is the sRGB standard, which defines the x-y coordinates of the red, green and blue light source in connection with a reference white point. The primary RGB coordinates of the sRGB standard define a triangle drawn in the Y-xy diagram. The Y component represents the luminance of a pixel (perpendicular to the x-y axis) while the x-y coordinate relates to a unique color with respect to saturation and hue. Preferably, the color coordinates of each encoded pixel lie inside or on the border of this triangle. For many mobile LCD displays, their display triangle is smaller than the sRGB reference resulting in several artifacts. These artifacts may include a lack of saturation due to a smaller gamut of the display of the mobile device. A further artifact may relate to hue errors as the color display primaries do not match the sRGB standard primary values. Furthermore, the reference white point may be shifted such that black and white parts in a scene may be represented in a color.
To cope with these problems, color gamut mapping is used to process input pixels such that the colors on a display with a smaller gamut are reproduced to match a reference display.
WO 2005/109854 discloses a method for processing color image data to be displayed on a target device. Input pixel data within a source color gamut is received. The input pixel data in said source color gamut is mapped to a target color gamut which can be associated to a target device. The mapping is controlled according to a color saturation value of the input pixel data.
FIG. 1 shows a block diagram of a basic color gamut mapping. The input image data IN are processed by gamma function 10. The output of the gamma function 10 undergoes a color gamut mapping function 20 by processing the input pixel data with a static matrix (3×3). The output of the color gamut mapping function 20 is processed by a hard clipper function 30. Here, negative values of R, G, B are clipped to zero and a value of the RGB is set to 2096 for 36-bit RGB pixel data if the value of the RGB is larger than 2096. The output of the hard clipper function 30 is processed by the de-gamma function 40 and the output OUT of the de-gamma function 40 is supplied to a display in a target device. The gamma function 10 is required as the input image data IN or pixels relate to the video domain. The values of the RGB signal are now proportional to the luminance of the three primary light sources. By performing a gamut mapping, light sources are linearly mixed to achieve a desired color. Gamut mapping is preferably performed in the light domain. The gamma transformation performed in the gamma function 10 corresponds to a non-linear operation and may increase the resolution of the RGB signal in the digital domain. The coefficients of the gamut mapping matrix in the gamut mapping function 20 are chosen such that an input RGB luminance value can be directly mapped into a new RGB luminance value for the display of the mobile application. In other words, the matrix is designed to adapt the ratio between the RGB subpixels. The coefficients of the gamut mapping matrix can be calculated:MTXcgm=(MTXdisp)−1·MTXSRGB wherein the MTXSRGB and the MTXdisp matrices are used to translate a RGB value to the XYZ domain. These matrices are determined based on the primary colors and a reference white point.
However, the above described color gamut mapping may lead to subpixels which are out of range (negative or positive out of range). To avoid such values, a clipping operation (hard, soft or smart) is performed. The inverse gamma function is used to transform the pixels back to the video domain as a display typically cannot handle the luminance values directly, e.g. due to standard interface display driver hardware.
FIG. 2 shows two graphs for illustrating problems arising from a color gamut mapping. In the upper graph, a color triangle of the input image data and of the output image data are displayed. In the lower graph, color triangle watched from the side is depicted. In the upper diagram, the input stimuli Is represent scanned lines, wherein for each scanned line the saturation is increased in steps of 10%. The twelve lines depicted in the lower diagram comprise a constant hue. The result of color gamut mapping OM is depicted in the same diagram. The x-y diagram is taken at a constant perceptive luminance level of 30% and output values above or below this luminance are color coded (red/blue) until a threshold of 5% is exceeded. Those part of the line where the threshold is exceed are labelled with UT. Accordingly the color gamut mapping works well for pixels that coincide both triangles.
In the lower diagram, the luminance on the vertical axis is shown while the blue-yellow color space surface is watched from aside. The flat lines represent the input stimuli Is. The bended lines show the luminance of the display if no gamut mapping is performed at all. The lines MO show the result after color gamut mapping. Accordingly, the gamut mapping works well in the luminance direction for pixels that coincide with both triangles.
However, the following gamut mapping problems may arise. Those pixels which fall outside the display triangle may generate negative values after mapping, i.e. negative light is required to reproduce this particular color on the display. As this is physically not possible, these negative values must be clipped off to a value the display can represent. The upper diagram shows the problem area at the corner of the display triangle. Moreover, pixels with high amplitude may lay outside the display range and have to be therefore limited to a value, which can be physically represented. The lower Y-x-y diagram depicts a problem area at the right top where the lines UMO clip against the ceiling. In general, any sudden discontinuity in the first derivative of the luminance will lead to visible artifacts in the resulting image. This artifact can be seen at the right side of the Y-x-y diagram where the luminance suddenly bends upwards. Therefore, a trade-off is required between the color gamut mapping and the (soft) clipping.